#include <nng/nng.h>
#include <nng/protocol/pubsub0/pub.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>
 
int main() {
    nng_socket pub_sock;
    int rv;
 
    // 创建发布者套接字
    if ((rv = nng_pub0_open(&pub_sock)) != 0) {
        fprintf(stderr, "无法创建发布者套接字: %s\n", nng_strerror(rv));
        return 1;
    }
 
    // 绑定到地址
    //if ((rv = nng_listen(pub_sock, "tcp://127.0.0.1:5555", NULL, 0)) != 0) {
    if ((rv = nng_listen(pub_sock, "tcp://192.168.88.133:9556", NULL, 0)) != 0) {
        fprintf(stderr, "无法绑定地址: %s\n", nng_strerror(rv));
        nng_close(pub_sock);
        return 1;
    }
 
    // 发布消息
    char *msg = "Hello, World!";
    for (int i = 0; i < 100; ++i) {
        if ((rv = nng_send(pub_sock, msg, strlen(msg), 0)) != 0) {
            fprintf(stderr, "发送消息失败: %s\n", nng_strerror(rv));
            break;
        }
        printf("已发送消息: %s\n", msg);
        sleep(1); // 每秒发送一次消息
    }
 
    // 关闭套接字
    nng_close(pub_sock);
    return 0;
}